package valueObject;

import entity.Acompanante;
import entity.UsuarioRegistrado;
import java.util.ArrayList;
import java.util.List;

public class UsuarioRegistradoVO implements ValueObject<UsuarioRegistrado> {
    
    private int id;
    private String apellido;
    private String nombre;
    private String tipoDeDocumento;
    private String documento;
    private String genero;
    private String dependencia;
    private String correo;
    private String telefono;
    private String celular;
    private boolean estaAceptado;
    private boolean estaConfirmado;
    
    private FormularioVO formulario;
       
    private TipoDeContratacionVO tipoDeContratacion;
    
    private List<AcompananteVO> acompanantes;
    
    private PuntoDeEncuentroVO puntoDeEncuentroVO;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getTipoDeDocumento() {
        return tipoDeDocumento;
    }

    public void setTipoDeDocumento(String tipoDeDocumento) {
        this.tipoDeDocumento = tipoDeDocumento;
    }

    public String getDocumento() {
        return documento;
    }

    public void setDocumento(String documento) {
        this.documento = documento;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

    public String getDependencia() {
        return dependencia;
    }

    public void setDependencia(String dependencia) {
        this.dependencia = dependencia;
    }

    public String getCorreo() {
        return correo;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getCelular() {
        return celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public boolean isEstaAceptado() {
        return estaAceptado;
    }

    public void setEstaAceptado(boolean estaAceptado) {
        this.estaAceptado = estaAceptado;
    }

    public boolean isEstaConfirmado() {
        return estaConfirmado;
    }

    public void setEstaConfirmado(boolean estaConfirmado) {
        this.estaConfirmado = estaConfirmado;
    }

    public FormularioVO getFormulario() {
        return formulario;
    }

    public void setFormulario(FormularioVO formulario) {
        this.formulario = formulario;
    }

    public TipoDeContratacionVO getTipoDeContratacion() {
        return tipoDeContratacion;
    }

    public void setTipoDeContratacion(TipoDeContratacionVO tipoDeContratacion) {
        this.tipoDeContratacion = tipoDeContratacion;
    }

    public List<AcompananteVO> getAcompanantes() {
        return acompanantes;
    }

    public void setAcompanantes(List<AcompananteVO> acompanantes) {
        this.acompanantes = acompanantes;
    }

    public PuntoDeEncuentroVO getPuntoDeEncuentro() {
        return puntoDeEncuentroVO;
    }

    public void setPuntoDeEncuentro(PuntoDeEncuentroVO puntoDeEncuentroVO) {
        this.puntoDeEncuentroVO = puntoDeEncuentroVO;
    }

    @Override
    public UsuarioRegistrado toEntity() {
        UsuarioRegistrado usuarioRegistrado = new UsuarioRegistrado();
        usuarioRegistrado.setApellido(apellido);
        usuarioRegistrado.setCelular(celular);
        usuarioRegistrado.setCorreo(correo);
        usuarioRegistrado.setDependencia(dependencia);
        usuarioRegistrado.setDocumento(documento);
        usuarioRegistrado.setEstaAceptado(estaAceptado);
        usuarioRegistrado.setEstaConfirmado(estaConfirmado);
        usuarioRegistrado.setTelefono(telefono);
        usuarioRegistrado.setFormulario(formulario.toEntity());
        usuarioRegistrado.setGenero(genero);
        usuarioRegistrado.setId(id);
        usuarioRegistrado.setNombre(nombre);
        usuarioRegistrado.setTipoDeContratacion(tipoDeContratacion.toEntity());
        usuarioRegistrado.setTipoDeDocumento(tipoDeDocumento);
        if (acompanantes != null) {
            List<Acompanante> acompanantesE = new ArrayList<Acompanante>();
            for (AcompananteVO acompanante : acompanantes) {
                acompanantesE.add(acompanante.toEntity());
            }
            usuarioRegistrado.setAcompanantes(acompanantesE);
        } else {
            usuarioRegistrado.setAcompanantes(new ArrayList<Acompanante>());
        }
        usuarioRegistrado.setPuntoDeEncuentro(puntoDeEncuentroVO.toEntity());
        return usuarioRegistrado;
    }
}
